package com.ssm.subject.domain.service;

import com.ssm.subject.common.entity.PageResult;
import com.ssm.subject.domain.bo.SubjectLikedBO;

public interface SubjectLikedDomainService {

    /**
     * 新增/取消点赞
     * @return
     */
    void add(SubjectLikedBO subjectLikedBO);

    /**
     * 判断当前用户是否点赞
     */
    Boolean isLiked(String subjectId, String userId);

    /**
     * 获取题目点赞数量
     */
    Integer getLikedCount(String subjectId);

    /**
     * 数据库同步redis点赞数据
     */
    void syncLiked();

    /**
     * 分页查询点赞记录
     * @param subjectLikedBO
     * @return
     */
    PageResult<SubjectLikedBO> getSubjectLikedPage(SubjectLikedBO subjectLikedBO);

    /**
     * MQ 同步点赞数据
     * @param subjectLikedBO
     */
    void syncLikedMsg(SubjectLikedBO subjectLikedBO);
}
